package com.xuecheng.api.cms;

import com.xuecheng.framework.domain.cms.CmsPage;
import com.xuecheng.framework.domain.cms.request.QueryPageRequest;
import com.xuecheng.framework.domain.cms.response.CmsPageResult;
import com.xuecheng.framework.domain.cms.response.CmsPostPageResult;
import com.xuecheng.framework.model.response.QueryResponseResult;
import com.xuecheng.framework.model.response.ResponseResult;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiImplicitParam;
import io.swagger.annotations.ApiImplicitParams;
import io.swagger.annotations.ApiOperation;

@Api(value="cms页面管理接口",description = "cms页面管理接口，提供页面的增、删、改、查")
public interface CmsPageControllerApi {

    //页面查询
    @ApiOperation("分页查询页面列表")
    @ApiImplicitParams({
            @ApiImplicitParam(name="page",value = "页码",required=true,paramType="path",dataType="int"),
            @ApiImplicitParam(name="size",value = "每页记录数",required=true,paramType="path",dataType="int")
    })
    public QueryResponseResult findList(int page, int size, QueryPageRequest queryPageRequest);


    // 新增页面，写完接口，不需要再写dao了，可以直接使用mongodb的save()方法
    @ApiOperation("新增页面")
    public CmsPageResult add(CmsPage cmsPage);


    // 根据页面id查询页面信息, Springdata mongodb中有相对应的查询方法, 不需要我们手写dao中的方法
    @ApiOperation("根据页面id查询页面信息")
    public CmsPage findById(String id);


    // 修改页面, Springdata mongodb中有相对应的save保存方法, 不需要我们手写dao中的方法
    @ApiOperation("修改页面")
    public CmsPageResult edit(String id, CmsPage cmsPage);


    // 删除页面
    @ApiOperation("删除页面")
    public ResponseResult delete(String id);

    // 页面发布
    @ApiOperation("页面发布")
    public ResponseResult post(String pageId);

    // 保存页面
    @ApiOperation("保存页面")
    public CmsPageResult save(CmsPage cmsPage);

    // 页面发布
    @ApiOperation("一键发布")
    public CmsPostPageResult postPageQuick(CmsPage cmsPage);
}
